When setting up a two-way voice conversation over an Internet Protocol (IP)-based communications network between two user devices, a third device will typically coordinate the activity. An example of such a coordinating device includes a Call Coordinator, which creates a communications link between two IP addresses to facilitate the voice traffic handling.
When the two user devices are behind the same Network Address Translation (NAT) device with different public mapped IP Addresses, it is possible that the call coordinating device cannot determine that the two user devices are behind the same NAT device. Therefore, the coordinating device cannot continue the call setup.
Moreover, when two devices are behind the same Firewall, they cannot communicate using their mapped public IP Addresses. In general, a Firewall will drop any outgoing packets that are destined for an IP address inside the network due to standard security policies. These security policies prevent traffic from going outside the network if their destination lies inside the network. This type of connection, however, is precisely what the Call Coordinator or other coordinating device is attempting to set up when establishing the two-way voice call under such circumstances.
Furthermore, this problem may be more prevalent than it appears on the surface. For example, a single entity may serve as a firewall for more than one network, thereby preventing users of the same firewall from being able to establish voice-over-IP connections. In some cases, the users may not even be aware that they are behind the same firewall or NAT.
In addition, two devices behind the same NAT may belong to different private networks using the same private network IDs, and will therefore be unable to communicate via their private addresses.
The present invention is therefore directed to the problem of developing a method and apparatus for establishing communication paths between any two or more endpoints on an IP-based communications network, whether or not these two or more endpoints are behind the same or different NAT devices or firewalls.